const { Sequelize, DataTypes, Model } = require('sequelize')
const sequelize = new Sequelize('dp_test', 'xoops_root', 'jzw&oa', {
  host: '10.10.3.15',
  port: 3306,
  dialect: 'mysql' /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
})

class User extends Model {}

User.init(
  {
    // 在这里定义模型属性
    firstName: {
      type: DataTypes.STRING,
      allowNull: false
    },
    lastName: {
      type: DataTypes.STRING
      // allowNull 默认为 true
    }
  },
  {
    // 这是其他模型参数
    sequelize, // 我们需要传递连接实例
    modelName: 'User', // 我们需要选择模型名称
    timestamps: false // 不要时间戳
  }
)

// 定义的模型是类本身
console.log(User === sequelize.models.User) // true

//
;(async function () {
  User.sync() //- 如果表不存在,则创建该表(如果已经存在,则不执行任何操作)
  // User.sync({ force: true }) //- 将创建表,如果表已经存在,则将其首先删除
  // User.sync({ alter: true }) //- 这将检查数据库中表的当前状态(它具有哪些列,它们的数据类型等),然后在表中进行
  
  
  // 创建模型实例
  const user = User.build({ firstName: 'Jane', lastName: 'Doe' });

  // 把模型实例存到数据库
  let res = await user.save()
  console.log('保存 user', res)
})()
